package demo.test;

import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Collections;
 
public class Main {
    public static void main(String[] args) {
        Integer[] arr = {84,93,100,77,90};
        int k = 3;
        PriorityQueue<Integer> pq = new PriorityQueue<>(); // 默认是最小堆
        for (int num : arr) {
            pq.add(num); // 添加元素到堆中
            if (pq.size() > k) { // 如果堆的大小超过k，移除最小元素
                pq.poll();
            }
        }
        Integer[] topK = new Integer[k];
        for (int i = k - 1; i >= 0; i--) { // 因为是最小堆，所以需要逆序输出
            topK[i] = pq.poll();
        }
        System.out.println(Arrays.toString(topK));
    }
}